package com.qf.hello.mybatis.dao;

import com.qf.hello.mybatis.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {

    //根据ID查询用户
    User selectUserById(Integer id);

    //根据名字和密码查询用户，如果是多参数推荐使用@Param指定参数名
    User selectUserByNameAndPwd(@Param("name") String name,  @Param("password")String pwd);

    //根据名字和密码查询用户，传递的map类型的参数
    User selectUserByNameAndPwdWithMap(Map<String,String> map);

    //根据名字和密码查询用户，传递的user类型的参数
    User selectUserByNameAndPasswordWithUser(User user);

    //根据用户名模糊查询用户
    User selectUserByName(String name);

    //根据ID删除员工
    int deleteById(Integer id);

    //添加员工
    int insertUser(User user);

    //新增员工后回填主键ID,在员工对象中就可以获取到新增的id的值了
    int insertUserWithId(User user);

    //根据ID修改员工
    int updateUser(User user);

    //动态更新
    int updateUserDynamic(User user);

    //动态查询 根据name或者password查询用户
    List<User> selectUserByNameOrPassword(@Param("name") String name,@Param("pwd") String password);

    //批量删除用户，传参list集合
    int deleteByIdList(List<Integer> idList);

    //批量删除用户，传参array数组
    int deleteByIdArray(Integer[] idArray);

    //查询所有
    List<User> selectAll();
}
